<?php

require 'configs.php';
require PASTA_FACEBOOK . '/facebook.php';
require PASTA_CLASSES . '/Usuarios.class.php';

function debuga() {
    $arrDados = func_get_args();
    print("<pre>");
    for ($i = 0; $i < count($arrDados); $i++) {
        print("<BR>");
        print_r($arrDados[$i]);
    }
    die();
}

// Verifica o tipo de requisição e se tem a variável 'code' na url
if ($_SERVER['REQUEST_METHOD'] == 'GET' && isset($_GET['code'])) {
    // Informe o id da app
    $appId = APP_ID;
    // Senha da app
    $appSecret = APP_SECRET;
    // Url informada no campo "Site URL"
    $redirectUri = urlencode(URL_LOGAR_FACE);
    // Obtém o código da query string
    $code = $_GET['code'];

    // Monta a url para obter o token de acesso
    $token_url = "https://graph.facebook.com/oauth/access_token?"
            . "client_id=" . $appId . "&redirect_uri=" . $redirectUri
            . "&client_secret=" . $appSecret . "&code=" . $code;

    // Requisita token de acesso
    $response = @file_get_contents($token_url);

    if ($response) {
        $params = null;
        parse_str($response, $params);

        // Se veio o token de acesso
        if (isset($params['access_token']) && $params['access_token']) {
            $graph_url = "https://graph.facebook.com/me?access_token="
                    . $params['access_token'];

            // Obtém dados através do token de acesso
            $user = json_decode(file_get_contents($graph_url));

            // Se obteve os dados necessários
            if (isset($user->email) && $user->email) {
                $usuarios = new Usuarios();
                $usuarios->logarFacebook($user->email, $user->name);
                $usuarios->gravaUsuarioFacebook($user->name,$user->email);
                $url = URL_PASTA_SITE;
                header("Location:" . $url);
            }
        } else {
            $_SESSION['fb_login_error'] = 'Falha ao logar no Facebook';
        }
    } else {
        $_SESSION['fb_login_error'] = 'Falha ao logar no Facebook';
    }
} else if ($_SERVER['REQUEST_METHOD'] == 'GET' && isset($_GET['error'])) {
    $_SESSION['fb_login_error'] = 'Permissão não concedida';
}
?>
